home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / AEObjects.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  8.0 KB  |  238 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        AEObjects.a
  3. ;
  4. ;    Contains:    Object Support Library Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1991-1998 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__AEOBJECTS__') = 'UNDEFINED' THEN
  18. __AEOBJECTS__ SET 1
  19.  
  20.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  21.     include 'OSUtils.a'
  22.     ENDIF
  23.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  24.     include 'AppleEvents.a'
  25.     ENDIF
  26.     IF &TYPE('__ERRORS__') = 'UNDEFINED' THEN
  27.     include 'Errors.a'
  28.     ENDIF
  29.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  30.     include 'Events.a'
  31.     ENDIF
  32.  
  33.  
  34.                                                             ;***    LOGICAL OPERATOR CONSTANTS    ***
  35. kAEAND                            EQU        'AND '                ;  0x414e4420  
  36. kAEOR                            EQU        'OR  '                ;  0x4f522020  
  37. kAENOT                            EQU        'NOT '                ;  0x4e4f5420  
  38.                                                             ;***    ABSOLUTE ORDINAL CONSTANTS    ***
  39. kAEFirst                        EQU        'firs'                ;  0x66697273  
  40. kAELast                            EQU        'last'                ;  0x6c617374  
  41. kAEMiddle                        EQU        'midd'                ;  0x6d696464  
  42. kAEAny                            EQU        'any '                ;  0x616e7920  
  43. kAEAll                            EQU        'all '                ;  0x616c6c20  
  44.                                                             ;***    RELATIVE ORDINAL CONSTANTS    ***
  45. kAENext                            EQU        'next'                ;  0x6e657874  
  46. kAEPrevious                        EQU        'prev'                ;  0x70726576  
  47.                                                             ;***    KEYWORD CONSTANT     ***
  48. keyAECompOperator                EQU        'relo'                ;  0x72656c6f  
  49. keyAELogicalTerms                EQU        'term'                ;  0x7465726d  
  50. keyAELogicalOperator            EQU        'logc'                ;  0x6c6f6763  
  51. keyAEObject1                    EQU        'obj1'                ;  0x6f626a31  
  52. keyAEObject2                    EQU        'obj2'                ;  0x6f626a32  
  53.                                                             ;    ... for Keywords for getting fields out of object specifier records. 
  54. keyAEDesiredClass                EQU        'want'                ;  0x77616e74  
  55. keyAEContainer                    EQU        'from'                ;  0x66726f6d  
  56. keyAEKeyForm                    EQU        'form'                ;  0x666f726d  
  57. keyAEKeyData                    EQU        'seld'                ;  0x73656c64  
  58.  
  59.                                                             ;    ... for Keywords for getting fields out of Range specifier records. 
  60. keyAERangeStart                    EQU        'star'                ;  0x73746172  
  61. keyAERangeStop                    EQU        'stop'                ;  0x73746f70  
  62.                                                             ;    ... special handler selectors for OSL Callbacks. 
  63. keyDisposeTokenProc                EQU        'xtok'                ;  0x78746f6b  
  64. keyAECompareProc                EQU        'cmpr'                ;  0x636d7072  
  65. keyAECountProc                    EQU        'cont'                ;  0x636f6e74  
  66. keyAEMarkTokenProc                EQU        'mkid'                ;  0x6d6b6964  
  67. keyAEMarkProc                    EQU        'mark'                ;  0x6d61726b  
  68. keyAEAdjustMarksProc            EQU        'adjm'                ;  0x61646a6d  
  69. keyAEGetErrDescProc                EQU        'indc'                ;  0x696e6463  
  70. ; ***    VALUE and TYPE CONSTANTS    ***
  71.  
  72.                                                             ;    ... possible values for the keyAEKeyForm field of an object specifier. 
  73. formAbsolutePosition            EQU        'indx'                ;  0x696e6478  
  74. formRelativePosition            EQU        'rele'                ;  0x72656c65  
  75. formTest                        EQU        'test'                ;  0x74657374  
  76. formRange                        EQU        'rang'                ;  0x72616e67  
  77. formPropertyID                    EQU        'prop'                ;  0x70726f70  
  78. formName                        EQU        'name'                ;  0x6e616d65  
  79.                                                             ;    ... relevant types (some of these are often pared with forms above). 
  80. typeObjectSpecifier                EQU        'obj '                ;  0x6f626a20  
  81. typeObjectBeingExamined            EQU        'exmn'                ;  0x65786d6e  
  82. typeCurrentContainer            EQU        'ccnt'                ;  0x63636e74  
  83. typeToken                        EQU        'toke'                ;  0x746f6b65  
  84. typeRelativeDescriptor            EQU        'rel '                ;  0x72656c20  
  85. typeAbsoluteOrdinal                EQU        'abso'                ;  0x6162736f  
  86. typeIndexDescriptor                EQU        'inde'                ;  0x696e6465  
  87. typeRangeDescriptor                EQU        'rang'                ;  0x72616e67  
  88. typeLogicalDescriptor            EQU        'logi'                ;  0x6c6f6769  
  89. typeCompDescriptor                EQU        'cmpd'                ;  0x636d7064  
  90. typeOSLTokenList                EQU        'ostl'                ;  0x6F73746C  
  91. ;  Possible values for flags parameter to AEResolve.  They're additive 
  92.  
  93. kAEIDoMinimum                    EQU        $0000
  94. kAEIDoWhose                        EQU        $0001
  95. kAEIDoMarking                    EQU        $0004
  96. kAEPassSubDescs                    EQU        $0008
  97. kAEResolveNestedLists            EQU        $0010
  98. kAEHandleSimpleRanges            EQU        $0020
  99. kAEUseRelativeIterators            EQU        $0040
  100. ; *** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION 
  101.  
  102. typeWhoseDescriptor                EQU        'whos'                ;  0x77686f73  
  103. formWhose                        EQU        'whos'                ;  0x77686f73  
  104. typeWhoseRange                    EQU        'wrng'                ;  0x77726e67  
  105. keyAEWhoseRangeStart            EQU        'wstr'                ;  0x77737472  
  106. keyAEWhoseRangeStop                EQU        'wstp'                ;  0x77737470  
  107. keyAEIndex                        EQU        'kidx'                ;  0x6b696478  
  108. keyAETest                        EQU        'ktst'                ;  0x6b747374  
  109. ;    used for rewriting tokens in place of 'ccnt' descriptors
  110. ;    This record is only of interest to those who, when they...
  111. ;    ...get ranges as key data in their accessor procs, choose
  112. ;    ...to resolve them manually rather than call AEResolve again.
  113. ;
  114.  
  115. ccntTokenRecord            RECORD 0
  116. tokenClass                 ds.l    1                ; offset: $0 (0)
  117. token                     ds        AEDesc            ; offset: $4 (4)
  118. sizeof                     EQU *                    ; size:   $C (12)
  119.                         ENDR
  120. ; typedef struct ccntTokenRecord *        ccntTokenRecPtr
  121.  
  122. ; typedef ccntTokenRecPtr *                ccntTokenRecHandle
  123.  
  124.     IF OLDROUTINENAMES THEN
  125. ; typedef struct AEDesc *                DescPtr
  126.  
  127. ; typedef DescPtr *                        DescHandle
  128.  
  129.     ENDIF    ; OLDROUTINENAMES
  130. ;  typedefs providing type checking for procedure pointers 
  131.  
  132.  
  133.  
  134. ;
  135. ; pascal OSErr AEObjectInit(void )
  136. ;
  137.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  138.         IMPORT_CFM_FUNCTION AEObjectInit
  139.     ENDIF
  140.  
  141. ;  Not done by inline, but by direct linking into code.  It sets up the pack
  142. ;  such that further calls can be via inline 
  143. ;
  144. ; pascal OSErr AESetObjectCallbacks(OSLCompareUPP myCompareProc, OSLCountUPP myCountProc, OSLDisposeTokenUPP myDisposeTokenProc, OSLGetMarkTokenUPP myGetMarkTokenProc, OSLMarkUPP myMarkProc, OSLAdjustMarksUPP myAdjustMarksProc, OSLGetErrDescUPP myGetErrDescProcPtr)
  145. ;
  146.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  147.         Macro
  148.         _AESetObjectCallbacks
  149.             move.w              #$0E35,D0
  150.             dc.w                $A816
  151.         EndM
  152.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  153.         IMPORT_CFM_FUNCTION AESetObjectCallbacks
  154.     ENDIF
  155.  
  156. ;
  157. ; pascal OSErr AEResolve(const AEDesc *objectSpecifier, short callbackFlags, AEDesc *theToken)
  158. ;
  159.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  160.         Macro
  161.         _AEResolve
  162.             move.w              #$0536,D0
  163.             dc.w                $A816
  164.         EndM
  165.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  166.         IMPORT_CFM_FUNCTION AEResolve
  167.     ENDIF
  168.  
  169. ;
  170. ; pascal OSErr AEInstallObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, long accessorRefcon, Boolean isSysHandler)
  171. ;
  172.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  173.         Macro
  174.         _AEInstallObjectAccessor
  175.             move.w              #$0937,D0
  176.             dc.w                $A816
  177.         EndM
  178.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  179.         IMPORT_CFM_FUNCTION AEInstallObjectAccessor
  180.     ENDIF
  181.  
  182. ;
  183. ; pascal OSErr AERemoveObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, Boolean isSysHandler)
  184. ;
  185.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  186.         Macro
  187.         _AERemoveObjectAccessor
  188.             move.w              #$0738,D0
  189.             dc.w                $A816
  190.         EndM
  191.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  192.         IMPORT_CFM_FUNCTION AERemoveObjectAccessor
  193.     ENDIF
  194.  
  195. ;
  196. ; pascal OSErr AEGetObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP *accessor, long *accessorRefcon, Boolean isSysHandler)
  197. ;
  198.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  199.         Macro
  200.         _AEGetObjectAccessor
  201.             move.w              #$0939,D0
  202.             dc.w                $A816
  203.         EndM
  204.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  205.         IMPORT_CFM_FUNCTION AEGetObjectAccessor
  206.     ENDIF
  207.  
  208. ;
  209. ; pascal OSErr AEDisposeToken(AEDesc *theToken)
  210. ;
  211.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  212.         Macro
  213.         _AEDisposeToken
  214.             move.w              #$023A,D0
  215.             dc.w                $A816
  216.         EndM
  217.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  218.         IMPORT_CFM_FUNCTION AEDisposeToken
  219.     ENDIF
  220.  
  221. ;
  222. ; pascal OSErr AECallObjectAccessor(DescType desiredClass, const AEDesc *containerToken, DescType containerClass, DescType keyForm, const AEDesc *keyData, AEDesc *token)
  223. ;
  224.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  225.         Macro
  226.         _AECallObjectAccessor
  227.             move.w              #$0C3B,D0
  228.             dc.w                $A816
  229.         EndM
  230.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  231.         IMPORT_CFM_FUNCTION AECallObjectAccessor
  232.     ENDIF
  233.  
  234.  
  235.     ENDIF ; __AEOBJECTS__ 
  236.  
  237.